<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-router</title>
    <!--1.引入相关的库文件-->
    <script src="../lib/vue_2.5.22.js"></script>
    <script type="text/javascript"></script>
</head>
<body>


<!-- 被vm实例所控制的区域-->
<div id="app">


    <div :style='{fontSize: fontSize + "px"}'>pmsg = {{pmsg}}</div>


    <!--  @enlarge-param='handle2($event)'
            $event是固定的写法
     -->
    <menu-item :parr="parr" @enlarge-param='handle2($event)' @enlarge-text='handle'></menu-item>

</div>

<script>


    /**
     * 子组件向父组件传值-基本用法
     * props传递数据原则: 单向数据流
     */
    Vue.component('menu-item', {

        /**
         * 子组件用属性props接收父组件传递过来的数据
         */
        props: ['parr'],
        data: function () {
            return {
                msg: '子组件本身的数据'
            }
        },
        template: `<div>
            <ul>
                <li :key="index" v-for="(item, index) in parr">
                    {{item}}
                </li>
            </ul>
            <button @click='parr.push("lemon")'>点击</button>
            <button @click='$emit("enlarge-text")'>扩大父组件中字体大小</button>
            <button @click='$emit("enlarge-param", 2)'>函数带参数 扩大组件中字体大小</button>
        </div>`
    });


    var vue = new Vue({
        // 指定控制的区域
        el: "#app",
        data: {
            pmsg: '父组件中内容',
            parr: ['apple', 'orange', 'banana'],
            fontSize: 10
            // pObj: {
            //     name: 'lisi',
            //     age: 12,
            //     sex: "男",
            // }
        },
        methods: {
            handle: function () {
                // 扩大字体大小
                /**
                 * bug点, 这个fontsize 单词中的size小写了
                 * @type {number}
                 */
                this.fontSize += 5;
            },
            handle2: function (val) {
                this.fontSize += val;
            }

        }
    });


</script>


</body>
</html>